package isssr.dao.interfaces;

import isssr.dao.exception.DAOException;
import isssr.entity.src.OrganizationalGoal;
import isssr.entity.src.User;

import java.util.List;
import java.util.Map;

public interface OrganizationalGoalDAO {

	public void insert(OrganizationalGoal goal) throws DAOException;
	public void update(OrganizationalGoal goal) throws DAOException;
	public void delete(OrganizationalGoal goal) throws DAOException;
	public Integer getAll(List<OrganizationalGoal> resultList) throws DAOException;
	public Integer getAll(List<OrganizationalGoal> resultList, Map<String, Object> filters, RecordSorting ordering, RecordPagination pagination) throws DAOException;
	
	public Integer getAllByOwner(List<OrganizationalGoal> resultList, User owner) throws DAOException;
	public Integer getAllByOwner(List<OrganizationalGoal> resultList, User owner, Map<String, Object> filters, RecordSorting ordering, RecordPagination pagination) throws DAOException;
	public Integer getAllBySuper(List<OrganizationalGoal> resultList, User superOwner) throws DAOException;
	public Integer getAllBySuper(List<OrganizationalGoal> resultList, User superOwner, Map<String, Object> filters, RecordSorting ordering, RecordPagination pagination) throws DAOException;
	public Integer getAllByEnactor(List<OrganizationalGoal> resultList, User enactor) throws DAOException;
	public Integer getAllByEnactor(List<OrganizationalGoal> resultList, User enactor, Map<String, Object> filters, RecordSorting ordering, RecordPagination pagination) throws DAOException;
	
	public OrganizationalGoal getByTitle(String title) throws DAOException;
	public OrganizationalGoal getByTitleAndOwner(String title, User owner) throws DAOException;
}
